{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 逻辑回归预测银行客户是否会开设定期存款账户\n",
    "\n",
    "逻辑回归要求预测值为 0 或者 1, 自变量特征值应该彼此独立。 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "该数据集来自UCI机器学习库(http://archive.ics.uci.edu/ml/datasets/Bank+Marketing)，葡萄牙银行的电话营销。 分类目标是预测客户是否会开设到定期存款账户（预测值y）。 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn import preprocessing\n",
    "import matplotlib.pyplot as plt \n",
    "plt.rc(\"font\", size=14)\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "import seaborn as sns\n",
    "sns.set(style=\"white\")\n",
    "sns.set(style=\"whitegrid\", color_codes=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(41188, 21)\n",
      "['age', 'job', 'marital', 'education', 'default', 'housing', 'loan', 'contact', 'month', 'day_of_week', 'duration', 'campaign', 'pdays', 'previous', 'poutcome', 'emp_var_rate', 'cons_price_idx', 'cons_conf_idx', 'euribor3m', 'nr_employed', 'y']\n"
     ]
    }
   ],
   "source": [
    "data = pd.read_csv('banking.csv', header=0)\n",
    "data = data.dropna()\n",
    "print(data.shape)\n",
    "print(list(data.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 输入特征的意义: \n",
    "\n",
    "### bank client data:\n",
    "* 1 - age (numeric)\n",
    "* 2 - job : type of job (categorical: 'admin.','blue-collar','entrepreneur','housemaid','management','retired','self-employed','services','student','technician','unemployed','unknown')\n",
    "* 3 - marital : marital status (categorical: 'divorced','married','single','unknown'; note: 'divorced' means divorced or widowed)\n",
    "* 4 - education (categorical: 'basic.4y','basic.6y','basic.9y','high.school','illiterate','professional.course','university.degree','unknown')\n",
    "* 5 - default: has credit in default? (categorical: 'no','yes','unknown')\n",
    "* 6 - housing: has housing loan? (categorical: 'no','yes','unknown')\n",
    "* 7 - loan: has personal loan? (categorical: 'no','yes','unknown') \n",
    "\n",
    "### related with the last contact of the current campaign:\n",
    "* 8 - contact: contact communication type (categorical: 'cellular','telephone') \n",
    "* 9 - month: last contact month of year (categorical: 'jan', 'feb', 'mar', ..., 'nov', 'dec')\n",
    "* 10 - day_of_week: last contact day of the week (categorical: 'mon','tue','wed','thu','fri')\n",
    "* 11 - duration: last contact duration, in seconds (numeric). Important note: this attribute highly affects the output target (e.g., if duration=0 then y='no'). Yet, the duration is not known before a call is performed. Also, after the end of the call y is obviously known. Thus, this input should only be included for benchmark purposes and should be discarded if the intention is to have a realistic predictive model.\n",
    "\n",
    "### other attributes:\n",
    "* 12 - campaign: number of contacts performed during this campaign and for this client (numeric, includes last contact)\n",
    "* 13 - pdays: number of days that passed by after the client was last contacted from a previous campaign (numeric; * 999 means client was not previously contacted)\n",
    "* 14 - previous: number of contacts performed before this campaign and for this client (numeric)\n",
    "* 15 - poutcome: outcome of the previous marketing campaign (categorical: 'failure','nonexistent','success')\n",
    "\n",
    "### social and economic context attributes\n",
    "* 16 - emp.var.rate: employment variation rate - quarterly indicator (numeric)\n",
    "* 17 - cons.price.idx: consumer price index - monthly indicator (numeric) \n",
    "* 18 - cons.conf.idx: consumer confidence index - monthly indicator (numeric) \n",
    "* 19 - euribor3m: euribor 3 month rate - daily indicator (numeric)\n",
    "* 20 - nr.employed: number of employees - quarterly indicator (numeric)\n",
    "\n",
    "### Output variable (desired target):\n",
    "* 21 - y - has the client subscribed a term deposit? (binary: 'yes','no')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['basic.4y', 'unknown', 'university.degree', 'high.school',\n",
       "       'basic.9y', 'professional.course', 'basic.6y', 'illiterate'],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['education'].unique()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['education']=np.where(data['education'] =='basic.9y', 'Basic', data['education'])\n",
    "data['education']=np.where(data['education'] =='basic.6y', 'Basic', data['education'])\n",
    "data['education']=np.where(data['education'] =='basic.4y', 'Basic', data['education'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Basic', 'unknown', 'university.degree', 'high.school',\n",
       "       'professional.course', 'illiterate'], dtype=object)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['education'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    36548\n",
       "1     4640\n",
       "Name: y, dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['y'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a1bd32be0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd19e41630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(x='y', data = data, palette='hls')\n",
    "plt.show()\n",
    "plt.savefig('count_plot')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "未开户的百分比:  88.73%\n",
      "开户的百分比:  11.27%\n"
     ]
    }
   ],
   "source": [
    "count_no_sub = len(data[data['y']==0])\n",
    "count_sub = len(data[data['y']==1])\n",
    "pct_of_no_sub = count_no_sub/(count_no_sub+count_sub)\n",
    "print('未开户的百分比:  %.2f%%' % (pct_of_no_sub*100))\n",
    "pct_of_sub = count_sub/(count_no_sub+count_sub)\n",
    "print('开户的百分比:  %.2f%%' % (pct_of_sub*100))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>duration</th>\n",
       "      <th>campaign</th>\n",
       "      <th>pdays</th>\n",
       "      <th>previous</th>\n",
       "      <th>emp_var_rate</th>\n",
       "      <th>cons_price_idx</th>\n",
       "      <th>cons_conf_idx</th>\n",
       "      <th>euribor3m</th>\n",
       "      <th>nr_employed</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>y</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>39.911185</td>\n",
       "      <td>220.844807</td>\n",
       "      <td>2.633085</td>\n",
       "      <td>984.113878</td>\n",
       "      <td>0.132374</td>\n",
       "      <td>0.248875</td>\n",
       "      <td>93.603757</td>\n",
       "      <td>-40.593097</td>\n",
       "      <td>3.811491</td>\n",
       "      <td>5176.166600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>40.913147</td>\n",
       "      <td>553.191164</td>\n",
       "      <td>2.051724</td>\n",
       "      <td>792.035560</td>\n",
       "      <td>0.492672</td>\n",
       "      <td>-1.233448</td>\n",
       "      <td>93.354386</td>\n",
       "      <td>-39.789784</td>\n",
       "      <td>2.123135</td>\n",
       "      <td>5095.115991</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         age    duration  campaign       pdays  previous  emp_var_rate  \\\n",
       "y                                                                        \n",
       "0  39.911185  220.844807  2.633085  984.113878  0.132374      0.248875   \n",
       "1  40.913147  553.191164  2.051724  792.035560  0.492672     -1.233448   \n",
       "\n",
       "   cons_price_idx  cons_conf_idx  euribor3m  nr_employed  \n",
       "y                                                         \n",
       "0       93.603757     -40.593097   3.811491  5176.166600  \n",
       "1       93.354386     -39.789784   2.123135  5095.115991  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby('y').mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 观察：\n",
    "\n",
    "购买定期存款的客户的平均年龄高于未购买定期存款的客户的平均年龄。\n",
    "\n",
    "购买定期存款的客户的 pdays（自上次联系客户以来的日子）较低。 pdays越低，最后一次通话的记忆越好，因此销售的机会就越大。\n",
    "\n",
    "令人惊讶的是，购买定期存款的客户的销售通话次数较低。\n",
    "\n",
    "我们可以计算其他特征值（如教育和婚姻状况）的分布，以更详细地了解我们的数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>duration</th>\n",
       "      <th>campaign</th>\n",
       "      <th>pdays</th>\n",
       "      <th>previous</th>\n",
       "      <th>emp_var_rate</th>\n",
       "      <th>cons_price_idx</th>\n",
       "      <th>cons_conf_idx</th>\n",
       "      <th>euribor3m</th>\n",
       "      <th>nr_employed</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>job</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>admin.</th>\n",
       "      <td>38.187296</td>\n",
       "      <td>254.312128</td>\n",
       "      <td>2.623489</td>\n",
       "      <td>954.319229</td>\n",
       "      <td>0.189023</td>\n",
       "      <td>0.015563</td>\n",
       "      <td>93.534054</td>\n",
       "      <td>-40.245433</td>\n",
       "      <td>3.550274</td>\n",
       "      <td>5164.125350</td>\n",
       "      <td>0.129726</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>blue-collar</th>\n",
       "      <td>39.555760</td>\n",
       "      <td>264.542360</td>\n",
       "      <td>2.558461</td>\n",
       "      <td>985.160363</td>\n",
       "      <td>0.122542</td>\n",
       "      <td>0.248995</td>\n",
       "      <td>93.656656</td>\n",
       "      <td>-41.375816</td>\n",
       "      <td>3.771996</td>\n",
       "      <td>5175.615150</td>\n",
       "      <td>0.068943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>entrepreneur</th>\n",
       "      <td>41.723214</td>\n",
       "      <td>263.267857</td>\n",
       "      <td>2.535714</td>\n",
       "      <td>981.267170</td>\n",
       "      <td>0.138736</td>\n",
       "      <td>0.158723</td>\n",
       "      <td>93.605372</td>\n",
       "      <td>-41.283654</td>\n",
       "      <td>3.791120</td>\n",
       "      <td>5176.313530</td>\n",
       "      <td>0.085165</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>housemaid</th>\n",
       "      <td>45.500000</td>\n",
       "      <td>250.454717</td>\n",
       "      <td>2.639623</td>\n",
       "      <td>960.579245</td>\n",
       "      <td>0.137736</td>\n",
       "      <td>0.433396</td>\n",
       "      <td>93.676576</td>\n",
       "      <td>-39.495283</td>\n",
       "      <td>4.009645</td>\n",
       "      <td>5179.529623</td>\n",
       "      <td>0.100000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>management</th>\n",
       "      <td>42.362859</td>\n",
       "      <td>257.058140</td>\n",
       "      <td>2.476060</td>\n",
       "      <td>962.647059</td>\n",
       "      <td>0.185021</td>\n",
       "      <td>-0.012688</td>\n",
       "      <td>93.522755</td>\n",
       "      <td>-40.489466</td>\n",
       "      <td>3.611316</td>\n",
       "      <td>5166.650513</td>\n",
       "      <td>0.112175</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>retired</th>\n",
       "      <td>62.027326</td>\n",
       "      <td>273.712209</td>\n",
       "      <td>2.476744</td>\n",
       "      <td>897.936047</td>\n",
       "      <td>0.327326</td>\n",
       "      <td>-0.698314</td>\n",
       "      <td>93.430786</td>\n",
       "      <td>-38.573081</td>\n",
       "      <td>2.770066</td>\n",
       "      <td>5122.262151</td>\n",
       "      <td>0.252326</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>self-employed</th>\n",
       "      <td>39.949331</td>\n",
       "      <td>264.142153</td>\n",
       "      <td>2.660802</td>\n",
       "      <td>976.621393</td>\n",
       "      <td>0.143561</td>\n",
       "      <td>0.094159</td>\n",
       "      <td>93.559982</td>\n",
       "      <td>-40.488107</td>\n",
       "      <td>3.689376</td>\n",
       "      <td>5170.674384</td>\n",
       "      <td>0.104856</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>services</th>\n",
       "      <td>37.926430</td>\n",
       "      <td>258.398085</td>\n",
       "      <td>2.587805</td>\n",
       "      <td>979.974049</td>\n",
       "      <td>0.154951</td>\n",
       "      <td>0.175359</td>\n",
       "      <td>93.634659</td>\n",
       "      <td>-41.290048</td>\n",
       "      <td>3.699187</td>\n",
       "      <td>5171.600126</td>\n",
       "      <td>0.081381</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>student</th>\n",
       "      <td>25.894857</td>\n",
       "      <td>283.683429</td>\n",
       "      <td>2.104000</td>\n",
       "      <td>840.217143</td>\n",
       "      <td>0.524571</td>\n",
       "      <td>-1.408000</td>\n",
       "      <td>93.331613</td>\n",
       "      <td>-40.187543</td>\n",
       "      <td>1.884224</td>\n",
       "      <td>5085.939086</td>\n",
       "      <td>0.314286</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>technician</th>\n",
       "      <td>38.507638</td>\n",
       "      <td>250.232241</td>\n",
       "      <td>2.577339</td>\n",
       "      <td>964.408127</td>\n",
       "      <td>0.153789</td>\n",
       "      <td>0.274566</td>\n",
       "      <td>93.561471</td>\n",
       "      <td>-39.927569</td>\n",
       "      <td>3.820401</td>\n",
       "      <td>5175.648391</td>\n",
       "      <td>0.108260</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unemployed</th>\n",
       "      <td>39.733728</td>\n",
       "      <td>249.451677</td>\n",
       "      <td>2.564103</td>\n",
       "      <td>935.316568</td>\n",
       "      <td>0.199211</td>\n",
       "      <td>-0.111736</td>\n",
       "      <td>93.563781</td>\n",
       "      <td>-40.007594</td>\n",
       "      <td>3.466583</td>\n",
       "      <td>5157.156509</td>\n",
       "      <td>0.142012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unknown</th>\n",
       "      <td>45.563636</td>\n",
       "      <td>239.675758</td>\n",
       "      <td>2.648485</td>\n",
       "      <td>938.727273</td>\n",
       "      <td>0.154545</td>\n",
       "      <td>0.357879</td>\n",
       "      <td>93.718942</td>\n",
       "      <td>-38.797879</td>\n",
       "      <td>3.949033</td>\n",
       "      <td>5172.931818</td>\n",
       "      <td>0.112121</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     age    duration  campaign       pdays  previous  \\\n",
       "job                                                                    \n",
       "admin.         38.187296  254.312128  2.623489  954.319229  0.189023   \n",
       "blue-collar    39.555760  264.542360  2.558461  985.160363  0.122542   \n",
       "entrepreneur   41.723214  263.267857  2.535714  981.267170  0.138736   \n",
       "housemaid      45.500000  250.454717  2.639623  960.579245  0.137736   \n",
       "management     42.362859  257.058140  2.476060  962.647059  0.185021   \n",
       "retired        62.027326  273.712209  2.476744  897.936047  0.327326   \n",
       "self-employed  39.949331  264.142153  2.660802  976.621393  0.143561   \n",
       "services       37.926430  258.398085  2.587805  979.974049  0.154951   \n",
       "student        25.894857  283.683429  2.104000  840.217143  0.524571   \n",
       "technician     38.507638  250.232241  2.577339  964.408127  0.153789   \n",
       "unemployed     39.733728  249.451677  2.564103  935.316568  0.199211   \n",
       "unknown        45.563636  239.675758  2.648485  938.727273  0.154545   \n",
       "\n",
       "               emp_var_rate  cons_price_idx  cons_conf_idx  euribor3m  \\\n",
       "job                                                                     \n",
       "admin.             0.015563       93.534054     -40.245433   3.550274   \n",
       "blue-collar        0.248995       93.656656     -41.375816   3.771996   \n",
       "entrepreneur       0.158723       93.605372     -41.283654   3.791120   \n",
       "housemaid          0.433396       93.676576     -39.495283   4.009645   \n",
       "management        -0.012688       93.522755     -40.489466   3.611316   \n",
       "retired           -0.698314       93.430786     -38.573081   2.770066   \n",
       "self-employed      0.094159       93.559982     -40.488107   3.689376   \n",
       "services           0.175359       93.634659     -41.290048   3.699187   \n",
       "student           -1.408000       93.331613     -40.187543   1.884224   \n",
       "technician         0.274566       93.561471     -39.927569   3.820401   \n",
       "unemployed        -0.111736       93.563781     -40.007594   3.466583   \n",
       "unknown            0.357879       93.718942     -38.797879   3.949033   \n",
       "\n",
       "               nr_employed         y  \n",
       "job                                   \n",
       "admin.         5164.125350  0.129726  \n",
       "blue-collar    5175.615150  0.068943  \n",
       "entrepreneur   5176.313530  0.085165  \n",
       "housemaid      5179.529623  0.100000  \n",
       "management     5166.650513  0.112175  \n",
       "retired        5122.262151  0.252326  \n",
       "self-employed  5170.674384  0.104856  \n",
       "services       5171.600126  0.081381  \n",
       "student        5085.939086  0.314286  \n",
       "technician     5175.648391  0.108260  \n",
       "unemployed     5157.156509  0.142012  \n",
       "unknown        5172.931818  0.112121  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby('job').mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>duration</th>\n",
       "      <th>campaign</th>\n",
       "      <th>pdays</th>\n",
       "      <th>previous</th>\n",
       "      <th>emp_var_rate</th>\n",
       "      <th>cons_price_idx</th>\n",
       "      <th>cons_conf_idx</th>\n",
       "      <th>euribor3m</th>\n",
       "      <th>nr_employed</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>marital</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>divorced</th>\n",
       "      <td>44.899393</td>\n",
       "      <td>253.790330</td>\n",
       "      <td>2.61340</td>\n",
       "      <td>968.639853</td>\n",
       "      <td>0.168690</td>\n",
       "      <td>0.163985</td>\n",
       "      <td>93.606563</td>\n",
       "      <td>-40.707069</td>\n",
       "      <td>3.715603</td>\n",
       "      <td>5170.878643</td>\n",
       "      <td>0.103209</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>married</th>\n",
       "      <td>42.307165</td>\n",
       "      <td>257.438623</td>\n",
       "      <td>2.57281</td>\n",
       "      <td>967.247673</td>\n",
       "      <td>0.155608</td>\n",
       "      <td>0.183625</td>\n",
       "      <td>93.597367</td>\n",
       "      <td>-40.270659</td>\n",
       "      <td>3.745832</td>\n",
       "      <td>5171.848772</td>\n",
       "      <td>0.101573</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>single</th>\n",
       "      <td>33.158714</td>\n",
       "      <td>261.524378</td>\n",
       "      <td>2.53380</td>\n",
       "      <td>949.909578</td>\n",
       "      <td>0.211359</td>\n",
       "      <td>-0.167989</td>\n",
       "      <td>93.517300</td>\n",
       "      <td>-40.918698</td>\n",
       "      <td>3.317447</td>\n",
       "      <td>5155.199265</td>\n",
       "      <td>0.140041</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unknown</th>\n",
       "      <td>40.275000</td>\n",
       "      <td>312.725000</td>\n",
       "      <td>3.18750</td>\n",
       "      <td>937.100000</td>\n",
       "      <td>0.275000</td>\n",
       "      <td>-0.221250</td>\n",
       "      <td>93.471250</td>\n",
       "      <td>-40.820000</td>\n",
       "      <td>3.313038</td>\n",
       "      <td>5157.393750</td>\n",
       "      <td>0.150000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                age    duration  campaign       pdays  previous  emp_var_rate  \\\n",
       "marital                                                                         \n",
       "divorced  44.899393  253.790330   2.61340  968.639853  0.168690      0.163985   \n",
       "married   42.307165  257.438623   2.57281  967.247673  0.155608      0.183625   \n",
       "single    33.158714  261.524378   2.53380  949.909578  0.211359     -0.167989   \n",
       "unknown   40.275000  312.725000   3.18750  937.100000  0.275000     -0.221250   \n",
       "\n",
       "          cons_price_idx  cons_conf_idx  euribor3m  nr_employed         y  \n",
       "marital                                                                    \n",
       "divorced       93.606563     -40.707069   3.715603  5170.878643  0.103209  \n",
       "married        93.597367     -40.270659   3.745832  5171.848772  0.101573  \n",
       "single         93.517300     -40.918698   3.317447  5155.199265  0.140041  \n",
       "unknown        93.471250     -40.820000   3.313038  5157.393750  0.150000  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby('marital').mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>duration</th>\n",
       "      <th>campaign</th>\n",
       "      <th>pdays</th>\n",
       "      <th>previous</th>\n",
       "      <th>emp_var_rate</th>\n",
       "      <th>cons_price_idx</th>\n",
       "      <th>cons_conf_idx</th>\n",
       "      <th>euribor3m</th>\n",
       "      <th>nr_employed</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>education</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Basic</th>\n",
       "      <td>42.163910</td>\n",
       "      <td>263.043874</td>\n",
       "      <td>2.559498</td>\n",
       "      <td>974.877967</td>\n",
       "      <td>0.141053</td>\n",
       "      <td>0.191329</td>\n",
       "      <td>93.639933</td>\n",
       "      <td>-40.927595</td>\n",
       "      <td>3.729654</td>\n",
       "      <td>5172.014113</td>\n",
       "      <td>0.087029</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>high.school</th>\n",
       "      <td>37.998213</td>\n",
       "      <td>260.886810</td>\n",
       "      <td>2.568576</td>\n",
       "      <td>964.358382</td>\n",
       "      <td>0.185917</td>\n",
       "      <td>0.032937</td>\n",
       "      <td>93.584857</td>\n",
       "      <td>-40.940641</td>\n",
       "      <td>3.556157</td>\n",
       "      <td>5164.994735</td>\n",
       "      <td>0.108355</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>illiterate</th>\n",
       "      <td>48.500000</td>\n",
       "      <td>276.777778</td>\n",
       "      <td>2.277778</td>\n",
       "      <td>943.833333</td>\n",
       "      <td>0.111111</td>\n",
       "      <td>-0.133333</td>\n",
       "      <td>93.317333</td>\n",
       "      <td>-39.950000</td>\n",
       "      <td>3.516556</td>\n",
       "      <td>5171.777778</td>\n",
       "      <td>0.222222</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>professional.course</th>\n",
       "      <td>40.080107</td>\n",
       "      <td>252.533855</td>\n",
       "      <td>2.586115</td>\n",
       "      <td>960.765974</td>\n",
       "      <td>0.163075</td>\n",
       "      <td>0.173012</td>\n",
       "      <td>93.569864</td>\n",
       "      <td>-40.124108</td>\n",
       "      <td>3.710457</td>\n",
       "      <td>5170.155979</td>\n",
       "      <td>0.113485</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>university.degree</th>\n",
       "      <td>38.879191</td>\n",
       "      <td>253.223373</td>\n",
       "      <td>2.563527</td>\n",
       "      <td>951.807692</td>\n",
       "      <td>0.192390</td>\n",
       "      <td>-0.028090</td>\n",
       "      <td>93.493466</td>\n",
       "      <td>-39.975805</td>\n",
       "      <td>3.529663</td>\n",
       "      <td>5163.226298</td>\n",
       "      <td>0.137245</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unknown</th>\n",
       "      <td>43.481225</td>\n",
       "      <td>262.390526</td>\n",
       "      <td>2.596187</td>\n",
       "      <td>942.830734</td>\n",
       "      <td>0.226459</td>\n",
       "      <td>0.059099</td>\n",
       "      <td>93.658615</td>\n",
       "      <td>-39.877816</td>\n",
       "      <td>3.571098</td>\n",
       "      <td>5159.549509</td>\n",
       "      <td>0.145003</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                           age    duration  campaign       pdays  previous  \\\n",
       "education                                                                    \n",
       "Basic                42.163910  263.043874  2.559498  974.877967  0.141053   \n",
       "high.school          37.998213  260.886810  2.568576  964.358382  0.185917   \n",
       "illiterate           48.500000  276.777778  2.277778  943.833333  0.111111   \n",
       "professional.course  40.080107  252.533855  2.586115  960.765974  0.163075   \n",
       "university.degree    38.879191  253.223373  2.563527  951.807692  0.192390   \n",
       "unknown              43.481225  262.390526  2.596187  942.830734  0.226459   \n",
       "\n",
       "                     emp_var_rate  cons_price_idx  cons_conf_idx  euribor3m  \\\n",
       "education                                                                     \n",
       "Basic                    0.191329       93.639933     -40.927595   3.729654   \n",
       "high.school              0.032937       93.584857     -40.940641   3.556157   \n",
       "illiterate              -0.133333       93.317333     -39.950000   3.516556   \n",
       "professional.course      0.173012       93.569864     -40.124108   3.710457   \n",
       "university.degree       -0.028090       93.493466     -39.975805   3.529663   \n",
       "unknown                  0.059099       93.658615     -39.877816   3.571098   \n",
       "\n",
       "                     nr_employed         y  \n",
       "education                                   \n",
       "Basic                5172.014113  0.087029  \n",
       "high.school          5164.994735  0.108355  \n",
       "illiterate           5171.777778  0.222222  \n",
       "professional.course  5170.155979  0.113485  \n",
       "university.degree    5163.226298  0.137245  \n",
       "unknown              5159.549509  0.145003  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby('education').mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd19e96e10>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "table=pd.crosstab(data.job,data.y)\n",
    "table.div(table.sum(1).astype(float), axis=0).plot(kind='bar', stacked=True)\n",
    "plt.title('Stacked Bar Chart of Job title vs Purchase')\n",
    "plt.xlabel('Job')\n",
    "plt.ylabel('Proportion of Purchase')\n",
    "plt.savefig('purchase_vs_job')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "具有不同职位的人购买存款的频率不一样。 因此，职称可以是良好的预测因素。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAE5CAYAAACOIGfLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XeYXGXZx/HvJiSRhN40UTrmhxAJsHRpSq9RwPLSQUCKgC8gKiBGFBSlqVRB6bEBgiBFKdJCDVIW8EZFSiAIob4kpO6+fzxnYLLszp7dzNkp+/tc116Zc+bMmXtOzsx9nnKep6WjowMzM7PuDKp1AGZmVt+cKMzMrCInCjMzq8iJwszMKnKiMDOzipwozMysogVqHUCzkrQB8CNgSVJCfhE4JiKezJ7/C7B7REztw743B86OiDHzEd/ZwNSIGN9p/b7Az4D/AC3AEOBZ4MCImNLX98v2vRhwErA50A50kD7Hr7LnnwN2i4iH5+M91gW+GhEH9/J15wHbAhMi4viy9fsCFwM/iIgTy9a3AP8Gpvf2/0HSjaRz4ak850Gl/+9qnWfzcz5WU/ZZbwKCdH60AHOA70fE9VV6j7+RjudV1djfQOBEUQBJw4AbgK0j4pFs3Z7ATZJWjIi5wFa1jLEHd0fEjqUFSeeSfuAP7OsOJX0EuBO4Elg7IuZIWh64TRKlZFEFqwOf6MPrvgYsFxGTu3juBWAP4MSydZsAw4HpvX2jiNi+bLHP50GVz7N6Oh//HRFrlhYkjQXuzT7TazWMa8ByoijGcGAxYKGydVcC7wCDJV2UrbtD0vbAWOA4YCiwDHBpRHwXQNL+wNHAXGAqsE/5G0naONv3/0TEREk7ASdk+5pOurq8T9IiwEXZe00hXaXd09MHkTQEWIRUqkDSR4ELgI8CHwOeB74UEa9mJYIHgDWA4yLij2W7+jLwbkT8pLQiIp6X9KUs1pKvSTo/Ow6XR8TxkgYBZwIbAAuTrjIPiIh7JV0CLAGsDNxP+sFbVNLFEbFfp8+yOnA26eq7Azg9Ii6TdHe2z5skHRoRd3c6DE8Ay0raKCImZuv2Aa4glUJ6dVyyz7IbcFi2rx7Pg25U5TyTdHGn7e6mrGRXKukBjwK/ADYGZpHOif0i4t2yYzwamAiMiohZkgZnx2JrYFXSudlOOp+/GRF3Vfh8AETEY5KmA8tLOgxYKiK+nr3f+NJyVlJ4I3uf84A/AOdny+3A+RHx82y34yQdS/r/upVUYm6XdBzweeAjwAjS9+ePklYFfpWtbwEuiohzsxiOB3YlleieAw6NiJd7+lyNxG0UBYiIN4FjgZslPSvpcmA/4NaImFX2A/ZZYDIpEewTEeuQfgy/I2mp7ErqVGDbiFgD+BNQXi3yWeASYKcsSXwSOAXYPiLWAg4CrpE0Avg+8B7pS/NFQBU+wiaSHpX0GCmpbE76kgB8BbgvIjYEViIlo73KXtsWEZ/qlCQA1gHu7eJYPRIR95etmpEdh/WAoyUtC6wPjAI2jIjVgEuBb5e9ZnhErB4RXyVd9d/dRZJYgHT8fpEdy+2AUyRtGBGbZJt9toskUXJZ6XNKGk4qUdxc9nyvj0ve86CbeKp2npVvFxEvdvd+wIakc2GNiGglJYo1OsX0DPAksHO2amvguYh4Cvgp6Ud0HeC72b56JGkX0g/9Uzk2fzMiVouIXwDnAs9ExKpZ7AdJWiXbbuFs3adI58JnshLulsBm2TlyPKkkDfBN4Prsc28PbCppkKS9gU8D62WloBtJF2RNxYmiIBFxBulq5QjSj+23gL9LWrTTdh3ATkCrpO8BZ5CuWEYAWwC3lL68EXFWWd37J0jVDtdGxOPZuq2AkaTqnEdJV5ftwCqkL8BlEdGRFd87/5CXuzsi1oyIsaQrz9NJP0YtEfEzYKKko0hfxDHMe0Xb3Q9tO/nOtwnZZ30F+C+wTETcR7oS/Zqk00hXt+Xv2WPJCBgNfCQirsn2/zJwNVmJIIcrgV2yEtYXSElnTunJ+TgupddXOg8qva4a51leT5BKAg9I+gFwdVkJq9yFwL7Z4/344Ifzt8Afs5LO4sBPPvxSAFbOLlQelfQk6YJnXETkqeYrP85bAr8EiIi3I2JMRPwre+53ETE32+c/SefZ86SS4h6SfgwczAf/h38EjpV0DbALcEREtAM7kpLuw9l37nAqX4Q1JCeKAkj6jKRvRsT/RcQNEXEsqe68nU51wdnV/t+BtYFHSFcus/mgEa+jbNsFsyIw2XNbAftIWi9bNxi4LfuRXzO7wtkAaOODhkHKXt+j7MtwAakksoykU0lXWa+RvoR/6bTfdz+0k+T+LJZ5SNpZ0k/LVs0ue9wBtEjaAfhztu46UnVCnvcs19W5PojUWN+jLHE9Qrqa3IdUknvffByX0usrnQfdvaZa51lnnc+VoQAR8Rap+uoYUsL4naT/7eL1VwHrS/oUsBnw++z1xwOfAR4mJZL7smrFzv5ddg6vHhHbRsQDlWIrU36cO39/VsqqYKHr82xtUrXZIqT/v1NL7xURNwCfzD7LWsATklYmfedOLfu+rZN9xqbiRFGM14ATsvaDkpGkq7cnsuW5pB+pT5JOzBMi9erYDBhGOgHvALaUNDJ7zdf44Crslexq7hjgiqw65HZg61IyyeqbHyfVq94MfDUrLi8OjOvF5/kCqe71NWAb4KyIuBx4lfSDNDjHPq4mtR0cm9VbI2kl0pXt0z28ditSsf884CFSHXJ37zmHrn/8A5iVVWMgaRSpXvmvOWIvuYxUfbNoRLR1eq6vxyXPedCdap1n5duV9rsOvN+ramT2eEfgNmBipN5yl5ESxzwiYgap9HAJqdQxXdICWVvHiIg4HziUVO2TK1F3+sytklqy5Ld1hW1vJZVoyEpYt2XHoTubAg9npbQ7KTvPJE0AvhwRv81ifwdYFrgFOKAsAZ0EXN7Lz1T3nCgKkNXTfp5UB/6spKdIVyIHRURkm11DqjJpJ1Uh/UPSI6S63aeAVSLiCdKV381Ze8G2pOJw+XtdCvyD1DBbKqb/Ntv+B8DOETENGE+6ivoHcD0f/JB0pdRG8XdJbdk+v5CVLk4CTpM0qewzrFJhX6U4Z5GqAlYnXY09TkoeP4yIX/fw8vOBzbLX3EfqlrpiN1ej9wGrSpqnai0iZpP+T47M9nMrcFJE3NFT7GWuJf0wdvVD0KfjQo7zoLsXVus8K99O0hhS9dWRWVXKgcCkbJubSO0PbZIeBjYinVdduZDUznRRFusc4BvAhOz9/wDsHxEzcxyjcleSksU/Se0B91XY9uvAp7L/73uBH0XEpArb/wZYKjuOk0ilkyUkLUz6Lu2Rfa8eIFVF3Zl9vhuA+7NqsjX4oNqtabR4mHEzM6vEJQozM6vIicLMzCpyojAzs4qcKMzMrKKGHMJj0qRJw4B1STcYza1xOGZmjWIwqbvzQ62trbl7nDVkoiAliYp3upqZWbc2Id+IBkDjJoopAKNHj2bo0M43ZtaXtrY2xozp82jg1omPZ/X4WFZXIxzPWbNm8cwzz0D2G5pXoyaKuQBDhw5l2LBhtY6lR40QYyPx8aweH8vqaqDj2asqezdmm5lZRU4UZmZWkROFmZlV5ERhZmYVFdqYnQ29OxHYMSKe6/TcmqQRJhcF7gIOzkaYNDOzOlJYiULS+qR+uqO72eQK4PCIGE2aHOTAomIxM7O+K7Lq6UDS5PEfmmQ8m5t2wbK5ki8hzeNsZmZ1prCqp4g4AEDqcvrYUcx7w8cU0hzQvdLW1nmSsfnz6dVWZeiCvZlCuGetra1V3R/ArPem8cRT/6j6fqvNx7N6fCyry8ezd2p1w11X8/S293YnY8aMqfoNLs+evGtV91eElY6/upCTsgg+ntXjY1ldA/F4zpw5s08X2LXq9fQS8LGy5ZF0UUVlZma1V5NEERHPAzMkfSZbtTdpPl4zM6sz/ZooJN0oaZ1scQ/gTElPAyOAn/dnLGZmlk/hbRQRsULZ4+3LHj8GrFf0+5uZ2fzxndlmZlaRE4WZmVXkRGFmZhU5UZiZWUVOFGZmVpEThZmZVeREYWZmFTlRmJlZRU4UZmZWkROFmZlV5ERhZmYVOVGYmVlFThRmZlaRE4WZmVXkRGFmZhXVas7sutQ+exYrHX91rcPoUfvsWQwaMrTWYfTIx9OsOThRlBk0ZCg7HX1drcPo0fWnj6t1CLn4eJo1B1c9mZlZRU4UZmZWkROFmZlV5ERhZmYVOVGYmVlFThRmZlaRu8eaNQDfk2K15ERh1gB8T4rVkhOFmQ04LqH1jhOFmQ04LqH1jhuzzcysIicKMzOrKFeikLRw9u8GkvaWNKTYsMzMrF70mCgknQRcIGk54DpgX+C8guMyM7M6kadEsT1wALAr8JuI+BwwttCozMysbuTq9RQR0yVtCVyQrRqW53WSdgdOAIYCZ0bEOZ2eXzvb51DgRWDPiHgrZ+xmZtYP8pQoXpd0LrAOcKukHwMv9/QiSR8HTgY2JpVADpK0WqfNfgacGBFjgQCO6U3wZmZWvDyJYm9SYtghIqYDHcA+OV63JXB7RLwREdOAq4DdOm0zGFgkezwceC9X1GZm1m/yVD1NiIgtSgsR8Z2c+x4FTClbngKs12mbo4C/SjoLmAasn3PfZmbWT/IkisUkjchKBb3R0sW69tIDSQsCvwK2iIgHJR0FXAbskPcN2traehlSZa2trVXdX5EmTZpU6xB65ONZPT6W1eXj2Tt5EsU04HlJjwPvllZGxM49vO4lYJOy5ZHM27YxBngvIh7Mli8AfpAjng92MGYMw4blaldvOo10ojcCH8/q8bGsrmoez5kzZ/bpAjtPovhV78MB4FZgvKSlSclmV+Cgsuf/BSwrSRERwDjgoT6+l5mZFaTHxuyIuBS4DXgNuILUQH1pjte9BBwP3AE8SmrreFDSjZLWiYg3STfv/T4rrewP7NfnT2JmZoXosUQhaXvgfGAusBHwtKQ9IqLHoRcjYgIwodO67cse3wTc1Nugzcys/+TpHjue1BvprYiYQrov4qQigzIzs/qRJ1EMyhIEABHxKOleCjMzGwDyJIrp2YCAHQCSNgFmFBqVmZnVjTy9nr4F/AUYKek+4JOkHkxmZjYA9JgoIuI+SRsAG5KG3Lg/IqYWHpmZmdWFvDPcrUq607odWC/rCWVmZgNAnu6xvyXdYV1+V3UHcGNRQZmZWf3I00axDrBSRMwsOhgzM6s/eaqe/kHOCY7MzKz55EkAFwCPS5oIzC6tjIj9C4vKzMzqRp5E8VPgFuDfBcdiZmZ1KE+imBMRhxYeiZmZ1aU8bRT3Sco9mZCZmTWXPCWKzwFflTQLmEW6n6IjIhap/DIzM2sGeROFmZkNUHkmLnqeNMz4eOBkYLNsnZmZDQA9JgpJxwDHAY8BjwBHSTq+6MDMzKw+5Kl62hvYOCLeAZD0K+B+UunCzMyaXK5BAUtJInv8NmU33pmZWXPLU6J4TtKRwLnZ8mHAC8WFZGZm9SRPieIQ4AvA9OxvV8A34JmZDRB5EsWoiNgcWBRYPCI2AUYXGpWZmdWNbqueJK1FurnuMkm7Z4+RNAS4CFihPwI0M7PaqtRGcQiwFTAKuKZs/RzgD0UGZWZm9aPbRBERBwFI+mFEnNB/IZmZWT3J00bxI0kbAEg6UtKvJS1XcFxmZlYn8iSKXwPjJK0LHEnqGnthoVGZmVndyJMoVoqI7wA7AZdExHhgiUKjMjOzupEnUQzN/t0GuF3SYGCh4kIyM7N6kufO7ImSniL1dpoI3AbcWmhUZmZWN/KUKL4OHARsEhHtwGmktgozMxsA8iSKsaShO1aWtDYwBViz0KjMzKxu5Kl6urrs8VBgJPAwsF5PL8zu6D4he92ZEXFOp+cFXAAsDrwCfCUi3swXupmZ9Yc8M9ytWPb3cWAj0iRGFUn6OGnOio1JpZKDJK1W9nwL8CfgxxExFvg78O2+fQwzMytKrvkoykXE/UBrjk23BG6PiDciYhpwFbBb2fNrA9Mi4uZs+RTgHMzMrK70WPWUtUuUtADrAAvm2PcoUntGyRTmra5aBXhF0qXAWsATwOE59mtmZv2ot20UHcBrpAEDe9LSxbr2Tu+9ObBpRDws6QfAGcC+OfYNQFtbW95Nc2ltzVNQqg+TJk2qdQg98vGsHh/L6vLx7J0eE0VErNjHfb8EbFK2PBJ4uWz5FeCfEfFwtvwbUvVUbmPGjGHYsGF9DK+xNdKJ3gh8PKvHx7K6qnk8Z86c2acL7IptFJL2k7Re2fKpkvbJue9bgS0kLS1pOGlmvJvLnp8ILC1pbLa8E1D71GlmZvPoNlFI2h84DphVtvpe4ARJe/W044h4CTgeuAN4FJgQEQ9KulHSOhHxHmmK1QslPQl8Dji67x/FzMyKUKnq6TBgi4h4obQiIv4kqY00cdHlPe08IiYAEzqt277s8QPkuB/DzMxqp1LVU0t5kiiJiGeBwcWFZGZm9aRSohgs6UPPZ+uGFBeSmZnVk0qJ4m/A/3ax/ijgoUKiMTOzulOpjeJE4E5Jnyc1Yg8CNgQWId11bWZmA0C3JYqIeBtYnzTt6XDSwH7nAOtExGv9E56ZmdVaxRvuImImcFn2Z2ZmA1CvBwU0M7OBxYnCzMwqqnRn9g+yfz/Tf+GYmVm9qdRGsbuk84BzJW1Op9FgI+KNIgMzM7P6UClR/AV4MXv8eqfnOvDd2WZmA0K3iSIiDgEOkXRXRGzajzGZmVkdyTMfxaaS1ge2JQ3d8ZeIuKvwyMzMrC702OtJ0p6kCYUWJ92V/RtJBxYdmJmZ1Yc8U6EeDawXEVMAJP2Y1H5xYZGBmZlZfchzH8WgUpIAiIiXgbnFhWRmZvUkT6J4XdK40kI2SOCbxYVkZmb1JE/V0+HAdZLOzpZnAZ8vLiQzM6sneXo9PSlJwGhSCSQiYk7hkZmZWV3IU6IgIuYCTxcci5mZ1SEPCmhmZhU5UZiZWUW5qp4kLQ8sQdnAgBHxSFFBmZlZ/egxUUg6ldTz6VXSYIBk/65UYFxmZlYn8pQovgSskt1oZ2ZmA0yeNooXnSTMzAauPCWK2yT9BLgOeK+00m0UZmYDQ55EsW/27xfL1rmNwsxsgMhzZ/aK/RGImZnVpzy9nkYAPwW2I5u4CPhGRLxTcGxmZlYH8jRmnwkMA74AjCNVO/2iyKDMzKx+5GmjWD8ixpYWstntniwuJDMzqyd5ShQLSCrfbhCeuMjMbMDI1T0W+J2k87Plg4E78uxc0u7ACcBQ4MyIOKeb7XYAznbDuZlZ/clTojgKeAo4BfgxEMA3e3qRpI8DJwMbA2OBgySt1sV2HwVOo2wcKTMzqx95usfOAb6X/fXGlsDtEfEGgKSrgN2AkzptdxHwfVISMjOzOtNtopB0T0RsLOn/+GAwwPdFxCI97HsUMKVseQqwXqf3OAJ4BLg/d8Rl2tra+vKybrW2tlZ1f0WaNGlSrUPokY9n9fhYVpePZ+9UKlGU7sQe08VzeaqJutqmvfRA0hhgV2AL4BM59vchY8aMYdiwYX15acNrpBO9Efh4Vo+PZXVV83jOnDmzTxfY3SaKiCiVBs6PiO3Kn5N0P7BBD/t+CdikbHkkUD644BezdQ+TGrtHSbo7IspfY2ZmNVap6ukqYDSwsqTHy54aQlnJoIJbgfGSlgamkUoPB5WejIj32z0krQD8zUnCzKz+VKp6OgZYAbiQNHFRyRxy3HAXES9JOp7UlXYocFFEPCjpRuDEiHi4z1GbmVm/qVT19BzwnKQHI+LOvuw8IiYAEzqt276b91qhL+9hZmbFynMfxeqSfI+DmdkAlefO7FeAJ7MG7HdLKyPiiMKiMjOzupEnUdyX/ZmZ2QCU587s70taCGgl9Xh6ICL+r/DIzMysLvTYRiFpXeAZ4CzgDOB5SRsVHZiZmdWHPI3ZpwN7RMRaEbEGabymM4oNy8zM6kWeRLFIRLw/rHhE3A4MLy4kMzOrJ3kSRbuk5UsL2V3UnrjIzGyAyNPr6STgfkm3kgb62wo4tNCozMysbvRYooiIa4HNgYnZ3+YRcXXBcZmZWZ3IU/UEsDKwKrAK8NHiwjEzs3qTp3vseFLPp7eB6cAvswmHzMxsAMjTRrEn0BoRbwNIOp1UBfXzIgMzM7P6kKfq6XWg/E7stygb88nMzJpbnhLFw8B1ki4gzUWxJ/CCpF0AIuKaAuMzM7May5MoVsv+PbrT+sOBDsCJwsysieUZFPCzAJIWAFoiYnbhUZmZWd3I0+tpGUk3kea9niHpdkmjig/NzMzqQZ7G7LOB+0n3TywD3A2cV2RQZmZWP/K0UYyOiC+VLX9P0pNFBWRmZvUlT4liiKSPlBYkDSc1YpuZ2QCQp0TxW+BWSRdny/sBVxUXkpmZ1ZM8vZ5+IGkysC2pBHIJ8KuC4zIzszrRY6KQdFtEbAFc3NO29WD27NlMnjyZGTNm9On1x+z6iSpH1L2ODvjvm7P448SpTJvZ3m/va2bWG3mqnhaTNCIiphUeTRVMnjyZhRdemBVWWIGWlpZev36BF98qIKqudXR0sOSS7wBwxR2v9tv7mpn1Rp5EMQ14XtLjlI3xFBE7FxbVfJgxY0afk0R/a2lpYdjwRfjo4lNrHYqZWbfyJIqGa49ohCRR0tLSQgOFa2YDUMVEIWkMaeTYByLipf4JyczM6km391FI2g+4C/gW8JikrfstKjMzqxuVbrg7AhgTEesDOwHf7p+QzMysnlS8MzsiXs7+vQ9Yul8iqjM/Pfm7PHT/PQC8+Px/GH/c/9Y4IjOz/lUpUXQepmNOkYHUq212GMdtf7kRgL/efD1bb1eXnb3MzAqTZ6ynkl6P7yRpd0lPSfqXpMO6eH6cpEclPSbpWkmL9/Y9ivbpsa288MJ/ePutN3lk0gOst+EmtQ7JzKxfVer1tIakd8qWh2fLLUBHRCxSaceSPg6cDLQCM4GJku6IiKey5xchDVe+bkS8JOkkYDxwZJ8/TQFaWlr43JbbccE5p7N26/ossECeHsVmZs2jUoliZeDTZX+l5THZvz3ZErg9It7I7uq+Ctit7PkhwKFl3W4fB5brXfj9Y4ttdmDi3XewlaudzGwA6vbyOCKen899jwKmlC1PAdYr2//rwLUAkhYk9ar6xXy+ZyHmzp3Lap9ek2WXW6HWoZiZ9bsi61G6ut/4QyPfSVqUlDAei4hLe/MGbW1tH1q3wAILMG1a34alGjFixIfWTbz7Dq689EIO+8a3+rTPokyaNKnWIfSotbW11iHkVu/H08eyunw8e6fIRPESUN7yOxJ4uXwDSSOBW4DbgV73Ox0zZgzDhg2bZ93TTz/d5Q9+X220yWfZaJPPVm1/1dJIJ3oj8PGsHh/L6qrm8Zw5c2aXF9g9KTJR3AqMl7Q0aWDBXYGDSk9KGgzcAPw+In5YYBxmZjYfCksUWU+m44E7gKHARRHxoKQbgROBZYG1gMGSSo3cD0fEAUXFZGZmvVdoX8+ImABM6LRu++zhw/TuPg4zM6sB/1CbmVlFTX/32KzZcxk6ZHDu7T+57GK5tps+Yw4vvfZuj9v97bZb+N2Vv2bOnDmM2/Ur7Djui7ljMTOrB02fKIYOGcxOR19X9f1ef/q4HreZOvVVLr/4PM4691KGDBnKMUcewBprtrLc8itVPR4zs6K46qlAjz3yEGusuQ4LL7IoH1lwQT6z6ee4967bax2WmVmvOFEU6PWpr7HEEku9v7zEEksx9bVXaxiRmVnvOVH0s5ZBPuRm1lj8q1WgJZdamjfffP395TfemMqSSy5V4RVmZvXHiaJAY9del8f+/hBvv/UmM2bMYOLdd7D2uhvWOiwzs15p+l5PtbTUUsuw136H8J1jDmXO7Nlsvf04tOrqtQ7LzKxXmj5RzJo9N1dX1t6aPiPfzLCbb7ENm2+xTdXf38ysvzR9oujNzXYA/3zxrYIiMTNrTG6jMDOzipwozMysIicKMzOryInCzMwqcqIwM7OKnCjMzKyipu8e2z5nFoMWGJp7+7zzUcyeOZPnXn0v17bTp73LMUceyPd+eDof/dio3LGYmdWDpk8UgxYYyrMn71r1/a50/NVAz4kinm7jF2f8iJcnv1D1GMzM+oOrngp2y43XcfARx7DEkkvXOhQzsz5p+hJFrR1x9PG1DsHMbL64RGFmZhU5UZiZWUVOFGZmVlHTt1G0z5mV9VCqrtkzZ1Z9n2Zm9ajpE0Vv7qGA4oYZ//WV1xayXzOzornqyczMKnKiMDOzipoyUXR0dNQ6hNw6OjpooHDNbABqukQxePBgZs+eXeswcuton8vM2e21DsPMrFtNlygWW2wx/vvf/9LeXv8/vh0dHbzz1lQefuadWodiZtatpuv1tNRSSzF58mQiok+vf/XN6VWOqHvtHfD8f2fw0D/f7bf3NDPrraZLFIMGDWK55Zbr8+uPPfq6KkZjZtb4Ck0UknYHTgCGAmdGxDmdnl8TuBBYFLgLODgi5hQZk5mZ9U5hbRSSPg6cDGwMjAUOkrRap82uAA6PiNFAC3BgUfGYmVnfFFmi2BK4PSLeAJB0FbAbcFK2vDywYETcn21/CfB94Lwc+x4MMGvWrCqHDIuNGFz1fVbbzAYaPsTHs3p8LKtrIB7Pst/MXn34IhPFKGBK2fIUYL0env9Ezn2PBHjmmWfmJ74ufWPcyKrvs9ra2tpqHUJuPp7V42NZXQP8eI4E/p134yITRUsX69p78XwlDwGbkJLL3F7GZWY2UA0mJYmHevOiIhPFS6Qf85KRwMudnv9Yhee71draOhO4Z34DNDMbgHKXJEqKvOHuVmALSUtLGg7sCtxcejIingdmSPpMtmpv4KYC4zEzsz4oLFFExEvA8cAdwKPAhIh4UNKNktbJNtsDOFPS08AI4OdFxWNmZn3T0kgD6JmZWf9rurGezMysupwozMysIicKMzOryInCzMwqcqIwM7OKnCjMzKyippuPwswqkzQCWBl4AhgeEdNqHFLDkrQAsA2wBGXDEkXEZTULqgBOFFUiqR0ovyllNmnsqmHAOxGxeE0Ca1CS/sO8x3MeEbFSP4bTNCRtAVxAGvNnI+BxSXtExF9qG1nDmgAsDzzNB+drB+BEYR8WEYMAJJ0H3AunPJhiAAALW0lEQVRcGREdknYFtq1pcI1pc9IV2onAs6Rh6OeQ7uZfsWZRNb5TSHPE3BQRUyRtBvwGcKLomzUiYtVaB1E0t1FU3/oRcUVEdABExNXAujWOqeFExPMR8Rzpi/jDiJgcEa9ExOnAhjUOr5ENiohXSgsR8VQtg2kCT0uq//HK55NLFNU3TdJ+wO9JiXgv4PXahtTQWiR9NiLuAJC0HalkYX0zWdKOQIekxYDDgBdqHFMjGw6EpDZgRmllRHyudiFVnxNF9e0JnE0a4LCdNIruXjWNqLEdAFwqaVS2/Dw+nvPja8DPgGVJVXq3AQfVNKLGdkqtA+gPHhSwIJKWKE0Da/NP0pJAh4+p1RNJfwauB26IiMm1jqcoThRVJmlN4LekIukGwF3AlyLikZoG1qCyudUvAlYgTYQ1Adg/a7+wnNyLrBiS1ge2y/6GADcC10fEAzUNrMpc9VR9Pwe+QJp/42VJhwDnM+984ZbfBcBPgVOB/5J66FwGbFrLoBrQ5rUOoBllCeEBSecAu5Hm4DkWGFrTwKrMvZ6qb3hEPF1aiIi/ku6lsL5ZqtTHPyI6IuJCYJEax9Rwsl5kzwObdfrbFFhX0phaxteoJJ0j6THgFmA0cCiwdG2jqj6XKKrvDUljyYr5kvYAXK/ed+9J+gQfHM+NgZm1DamhjQPWAq7NlnckzV+/kKQJEXFmzSJrTIuR7vcJ0k13/4iIt2sbUvU5UVTfIcClwOqS3gL+SeoJZX1zFHADsLKkR0lDJXyptiE1tI8Ba0fEWwCSxpMaYzcEJgFOFL0QEXsASPoUsAVwg6QREfHx2kZWXU4UVRYR/87uxn6XNEzCMhHxrxqH1bAi4iFJ65KK9YNJV2yzahxWI1sa+L+y5feAJSJijiT3bOklSSIliC2BNYEHgD/XNKgCuNdTlUk6Atg3ItbOeuzcDJwZEb+scWgNRdL4iBgv6WK66K0TEfvXIKyGJ+lHpDGeSjeE7grcTSr5/k9EbFfD8BqOpMdJJd4/A/dFRHuNQyqEG7Or7yBSN06yxsNW4PCaRtSYJmX//g24s4s/64OI+A6pF9lo0phZp0bEd4FngN1rGVsjiog1gHtIPR3PkLRzjUMqhKueqm8I8za2zqJC/3XrWkRcnz3cIyK2rmkwzec/wFVkw2JL2jQi7qptSI1J0jdJ3WKvJB3PEySNiYimumPbiaL6rgVul/T7bHkX4LoaxtPoFpS0bES8WOtAmkHW338n4N9lqzuAphqbqB/tRRoI9D0ASReSSsNOFFbRcaRi6GakOSl+HhHXVn6JVbA08JykV0kNry2koTx8J3HfbA2o9MNm821Qp2M5gyYctNKJovoeioi1SUV7m397Aa/WOogm8ixlM7HZfLtN0tWk+VIA9gFur104xXCiqL7/StoEeDAifGPY/LssIj5V6yCayBvAU5ImMu+w2O5F1jffIN07tTepc9DtpGFnmooTRfWtQ9YrJ3WxBlJVyeCaRdTYHpO0F/AgqeoJgIjwHAp9c3P2Z1WQzWJ5BemmxVJJbRRNNseHE0WVRUTTjfNSY+tnf+U6ALdR9IKkj2Uz291R61iaiaTjgG+TJifrIGtDo8nOTyeKKpM0HPge6W7NBUhF0e9GxLSaBtagIsLzY1fHRaRxne5k3h+0kqb6YetHXwVWjojXah1IkZwoqu9sYDqwP+nLeCBpmHHPytYH2RAJhwILkY7nYGDFiPAw470QETtmD78CbEw6T68H1gYOrlVcTeAFBsCgn04U1dcaEWPLlr8uyRPY993vSPehbELqWbId0FbLgBrcz0jzJexCuqBZC7gG99Lrq38C90i6g3k7B5xUu5Cqz0N4VN+gbNJ6ALLHTdevuh8NiojvkRpgHwE+z4fbLCy/Qdld2DsCV2c3MvqCse9eIp2bM0kl3qbseuwTpPrOAB6S9KdseWfgRzWMp9FNlzSMNBZRa0TcI+kjtQ6qgU2XdDTpTuyvSzqSeUeTtd65PCKeLS1IagG+XsN4CuESRZVFxMWkO7OfBZ4DdomIX9c0qMZW6nr4Z+BwSTcBTTuJfT/YAxgB7BoRb5K6cnowwL67UdIqAJI+DdxPKvU2FQ8zXmXZtIiXk82ZXet4Gp2kpYH/Ic0kthywLnBLRBxb08DMAEkbkXqU/ZU0ZPt3IuLy2kZVfS5RVN/upB+1v0m6VdK+khaqdVAN7EZgLKnu90VSw6u7GltdiIiJpAuZLwJ7NmOSAJcoCpUN5XEWsGpEjKh1PI1I0kMRsW6t4zArJ6mdD+5D6dyA3XQjMbgxu8okDQa2IfVX3wy4hTQejPXNtZIOIN24+H7vMQ/hYbUUEQOqNsaJovomkxq0rgAO8PzO821R0hAJU8vWNd0QCdaYsu7vewBLUFayaLb7KJwoqm/1iGj6OzX70a7AMp4/werUH4C3STeBNm09vhNFlUi6IRsmYZKkD50wnminz54FFqds5FizOvKxiNiq1kEUzYmieu6VtDcwvtaBNJkO0vwJbaT5xwGICE/dafXg75LWiIjHax1IkZwoqmd09rcSsAqpW+dcYFvgSeDS2oXW0E6udQBmFYwBHsmm6i0f66mpahCcKKokIvYDyAYHGxsRU7PlxQHPmd1HEXFnrWMwq+BntQ6gPzhRVN8o5h12eBowskaxmFmxNi97PIQ0yvFdNFkNghNF9f0Z+Kuka0h3vn+RNFS2mTWZUk1CiaQlaMLv+4C6aaQ/RMRRwLnAqsAngdMi4ru1jcrM+sm7wAq1DqLaPISHmVkfZW2S5UN5rAT8OSIOrV1U1eeqJzOzvhtf9rgDmBoRTTejpUsUZmZWkdsozMysIicKMzOryG0U1vAkrQD8B7g7Ijbt9NzFwL7A0qWbIHPu8yTgXxFxmaQTgcci4roeXtPR1ftIGkmal2Q1Uj32e8Appf31Yv+5tjOrNpcorFnMAEZLWr60QtIIYOO+7CwiToyIy7LFz5Fupuqri4D7I+LTEbEGsB9wiaRP9XL/8xuHWZ+4RGHNYi7pRqc9gFOydbsA1wFHA0gaBJwJbAAsTOrOeEBE3CvpEtKcAisDNwAfJQ0d/R6wDvBTSXNJ43adAyxEugv/UeDLEfH+OD9dGAksKGlQRLRHxFOSdgbelHRYnv0DX+203TigLSJOyz7bJaVlSYcAB5MGUZwBfK0Ze+JY/3GJwprJZcCeZcv7AJeULa9P+vHdMCJWIw2z8O2y54dHxOoR8a3Siog4B3gY+GZE/BE4ELg0IjYkDf64IrBDD3EdA3wdeFXSdZK+CTwbEa/k3X8X23Upm2HxLGDbbArZX9LHUpVZiROFNY2ImAS0S2qVtCywcES0lT1/H3AC8DVJpwG7ka7cS+7J8TbfAl6TdCxwHinxLFTpBRFxO7Ac8HngAWAn4B+SupoLvNf77/Rec0mT6UyUdDZpUp1f5X29WVecKKzZXE4qVeyVPX6fpB1IY3FBqpI6n7LpK0nDL/TkN8BBwPOkaqxHOu1jHpKWkXQu0BER90TEKVmD++9IJZ6+7r+j0/qhpQcRsScpGf2LlHiuyfG5zLrlRGHN5grSQIxfBiZ0em4r4PqIOA94iHSFPzjHPufwQSPyNsBJEfE70o/1+j3s443sfY+U1AIgaTiphPFIL/dfvt1rpDYLJC1FGrUUSUtJehF4PSLOIpWgxub4jGbdcmO2NZWIeEnS08DbXcxdfj4wQdLjpMbvu4Bds0buSq4HTpM0FDgO+KOkN4DpwJ2ktoTu4pkjaWvgJ8ARkt4lJYBLIuLXvdx/+Xa/AK6UFMBzwN+y95sq6YfAbZLeIyWXA3r4fGYVeQgPMzOryFVPZmZWkROFmZlV5ERhZmYVOVGYmVlFThRmZlaRE4WZmVXkRGFmZhU5UZiZWUX/D5S5iTsFcInbAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a1bf5a198>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "table=pd.crosstab(data.marital,data.y)\n",
    "table.div(table.sum(1).astype(float), axis=0).plot(kind='bar', stacked=True)\n",
    "plt.title('Stacked Bar Chart of Marital Status vs Purchase')\n",
    "plt.xlabel('Marital Status')\n",
    "plt.ylabel('Proportion of Customers')\n",
    "plt.savefig('mariral_vs_pur_stack')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "婚姻状况似乎不是好的预测因素。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd19e4e2b0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "table=pd.crosstab(data.education,data.y)\n",
    "table.div(table.sum(1).astype(float), axis=0).plot(kind='bar', stacked=True)\n",
    "plt.title('Stacked Bar Chart of Education vs Purchase')\n",
    "plt.xlabel('Education')\n",
    "plt.ylabel('Proportion of Customers')\n",
    "plt.savefig('edu_vs_pur_stack')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "教育似乎是结果变量的良好预测指标。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd1a1d3a90>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "table=pd.crosstab(data.day_of_week,data.y)#.plot(kind='bar')\n",
    "table.div(table.sum(1).astype(float), axis=0).plot(kind='bar', stacked=True)\n",
    "plt.title('Stacked Bar Chart of Day of Week vs Purchase')\n",
    "plt.xlabel('Day of Week')\n",
    "plt.ylabel('Proportion of Purchase')\n",
    "plt.savefig('dow_vs_purchase')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "一周工作时间不是预测结果的良好预测因素。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "cat_vars=['job','marital','education','default','housing','loan','contact','month','day_of_week','poutcome']\n",
    "for var in cat_vars:\n",
    "    cat_list = pd.get_dummies(data[var], prefix=var)\n",
    "    data=data.join(cat_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['age', 'duration', 'campaign', 'pdays', 'previous', 'emp_var_rate',\n",
       "       'cons_price_idx', 'cons_conf_idx', 'euribor3m', 'nr_employed', 'y',\n",
       "       'job_admin.', 'job_blue-collar', 'job_entrepreneur',\n",
       "       'job_housemaid', 'job_management', 'job_retired',\n",
       "       'job_self-employed', 'job_services', 'job_student',\n",
       "       'job_technician', 'job_unemployed', 'job_unknown',\n",
       "       'marital_divorced', 'marital_married', 'marital_single',\n",
       "       'marital_unknown', 'education_Basic', 'education_high.school',\n",
       "       'education_illiterate', 'education_professional.course',\n",
       "       'education_university.degree', 'education_unknown', 'default_no',\n",
       "       'default_unknown', 'default_yes', 'housing_no', 'housing_unknown',\n",
       "       'housing_yes', 'loan_no', 'loan_unknown', 'loan_yes',\n",
       "       'contact_cellular', 'contact_telephone', 'month_apr', 'month_aug',\n",
       "       'month_dec', 'month_jul', 'month_jun', 'month_mar', 'month_may',\n",
       "       'month_nov', 'month_oct', 'month_sep', 'day_of_week_fri',\n",
       "       'day_of_week_mon', 'day_of_week_thu', 'day_of_week_tue',\n",
       "       'day_of_week_wed', 'poutcome_failure', 'poutcome_nonexistent',\n",
       "       'poutcome_success'], dtype=object)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_final=data.drop(cat_vars, axis=1)\n",
    "data_final.columns.values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 使用SMOTE进行过采样\n",
    "创建我们的训练数据后，我将使用SMOTE算法（合成少数过采样技术）对已经开户的用户进行上采样。 在高层次上，SMOTE：\n",
    "\n",
    "    通过从次要类（已经开户的用户）创建合成样本而不是创建副本来工作。\n",
    "    随机选择一个k-最近邻居并使用它来创建一个类似但随机调整的新观察结果。\n",
    "    \n",
    "使用如下命令安装:\n",
    "conda install -c conda-forge imbalanced-learn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "过采样以后的数据量:  51134\n",
      "未开户的用户数量:  25567\n",
      "开户的用户数量:  25567\n",
      "未开户的用户数量的百分比:  0.5\n",
      "开户的用户数量的百分比:  0.5\n"
     ]
    }
   ],
   "source": [
    "X = data_final.loc[:, data_final.columns != 'y']\n",
    "y = data_final.loc[:, data_final.columns == 'y'].values.ravel()\n",
    "\n",
    "from imblearn.over_sampling import SMOTE\n",
    "os = SMOTE(random_state=0)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)\n",
    "columns = X_train.columns\n",
    "os_data_X,os_data_y=os.fit_sample(X_train, y_train)\n",
    "os_data_X = pd.DataFrame(data=os_data_X,columns=columns )\n",
    "os_data_y= pd.DataFrame(data=os_data_y,columns=['y'])\n",
    "# we can Check the numbers of our data\n",
    "print(\"过采样以后的数据量: \",len(os_data_X))\n",
    "print(\"未开户的用户数量: \",len(os_data_y[os_data_y['y']==0]))\n",
    "print(\"开户的用户数量: \",len(os_data_y[os_data_y['y']==1]))\n",
    "print(\"未开户的用户数量的百分比: \",len(os_data_y[os_data_y['y']==0])/len(os_data_X))\n",
    "print(\"开户的用户数量的百分比: \",len(os_data_y[os_data_y['y']==1])/len(os_data_X))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在我们拥有完美平衡的数据！ 您可能已经注意到我仅对训练数据进行了过采样"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/yuanyuan/anaconda3/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "          intercept_scaling=1, max_iter=100, multi_class='warn',\n",
       "          n_jobs=None, penalty='l2', random_state=None, solver='warn',\n",
       "          tol=0.0001, verbose=0, warm_start=False)"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn import metrics\n",
    "#X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)\n",
    "logreg = LogisticRegression()\n",
    "logreg.fit(os_data_X, os_data_y.values.reshape(-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "在测试数据集上面的预测准确率: 0.86\n"
     ]
    }
   ],
   "source": [
    "y_pred = logreg.predict(X_test)\n",
    "print('在测试数据集上面的预测准确率: {:.2f}'.format(logreg.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.98      0.86      0.92     10981\n",
      "           1       0.44      0.88      0.59      1376\n",
      "\n",
      "   micro avg       0.86      0.86      0.86     12357\n",
      "   macro avg       0.71      0.87      0.75     12357\n",
      "weighted avg       0.92      0.86      0.88     12357\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import classification_report\n",
    "print(classification_report(y_test, y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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JUkIj/j000+rXP7rr7+6vW5Fr7zyCm3atAGgqKiIiRMnsmTJEiZOnFjzQOtYbGwsCxcurJN9vfTSS1x++eVe9Td66NAhnnvuORYvXkxgYCATJkygf//+dOrU6bj1Hn30UaZPn87ZZ5/N448/zmuvvcYdd9xR9l07nU6uvvpq7rjjDgCmTp3K9OnTeeeddzz+GXw+WUR7eqgPwyBj5SpiR46g3eRJBITKoH/CffPnz+ezzz7DbrczaNAg7r77bux2O4sWLeKdd94hNDSUhIQE4uPjufXWW1FKobVm1apVPPXUUwCEh4fzzDPP8PLLLwNw2WWX8dFHH5Wte/ToUWbOnElSUhKBgYHMmDGDgQMHVhlXTk4OOTk5RESYIzb/+OOPPP/885SUlNCmTRseeeQRIiMjWbNmDbNnz8Zut9OrVy927drF22+/zVVXXUV4eDh//vkn//nPfzh8+HCl2z/xxBP88ssv2O12zjnnHG655ZZKP9uxY8eYPHkyy5cvJz09nZkzZ5KSkoK/vz933HEHQ4cO5YUXXuDQoUPs3buX5ORkLrvsMm666abjPldubi7Lly/n7rvvBszk+txzz3Hs2DFycnK4++67ueCCC5gxYwZHjx5l79693H333TRv3pw5c+ZQUFBAZGQkDz30EG3bti3bvqCggKysrLLty/vXv/51wt39ddddx0UXXVT2euXKlQwYMKDsfJ933nl8/fXX3HLLLcdt53Q6ycszuwTk5+cTHn78LJmffPIJwcHBjB07FoCoqCiioqJYvXo1AwZ4tiWmzyeLqLC6TxYFaWkkL/6UDtddgz04mF5zn5OOdV5s+bp9fPfrPgAcDgd2e909bY7qF8+IvvG12vaHH35g+fLlLF68GH9/f2699Vbef/99+vTpw7vvvsvixYsJCAjgqquuIj7++GO8/PLLPPjgg/To0YNFixaxdetWZs2axdtvv81HH3103Lpz584lPj6el156Ca01999/f6XJYtq0adjtdjIyMmjZsiWTJk3iggsuIDMzk2eeeYZFixYRHh7O+++/z9NPP82DDz7IPffcw4IFC+jatSuzZ88+bn9KKV588UUyMzOZMWPGCdvffPPN/Pjjj3z55ZcUFhYyc+ZMCgsLK/1s7du3L9vvI488woABA5gyZQr79+/n73//O0uWLAFAa827775LTk4OI0eO5MorryQs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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a1de6dac8>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.metrics import roc_auc_score\n",
    "from sklearn.metrics import roc_curve\n",
    "logit_roc_auc = roc_auc_score(y_test, logreg.predict(X_test))\n",
    "fpr, tpr, thresholds = roc_curve(y_test, logreg.predict_proba(X_test)[:,1])\n",
    "plt.figure()\n",
    "plt.plot(fpr, tpr, label='Logistic Regression (area = %0.2f)' % logit_roc_auc)\n",
    "plt.plot([0, 1], [0, 1],'r--')\n",
    "plt.xlim([0.0, 1.0])\n",
    "plt.ylim([0.0, 1.05])\n",
    "plt.xlabel('False Positive Rate')\n",
    "plt.ylabel('True Positive Rate')\n",
    "plt.title('Receiver operating characteristic')\n",
    "plt.legend(loc=\"lower right\")\n",
    "plt.savefig('Log_ROC')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
